package com.agileboot.domain.airport.reform.command;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;

@Data
public class AddReformMainCommand {
    private Long reformId;

    @NotBlank(message = "整改编号不能为空")
    private String code;

    @NotNull(message = "关联的问题主键不能为空")
    private Long relatedQuestionId;

    @NotBlank(message = "问题来源不能为空")
    private String questionSourceName;

    @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "GMT+8")
    private Date checkDate;

    @NotBlank(message = "督查员不能为空")
    private String inspectors;

    @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "GMT+8")
    private Date issueDate;

    @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "GMT+8")
    private Date requestFeedbackDate;

    private String questionTitle;

    private String reformTitle;

    private Long issueDeptId;

    private Long dutyDeptId;

    private Long curDealDeptId;

    private String reformRequirement;

    private String requireDefineCause;

    private String requireDefineAction;

    private String directCause;

    private String rootCause;

    private String causeEvalerName;

    @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "GMT+8")
    private Date causeEvalTime;

    @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "GMT+8")
    private Date correctiveDeadline;

    @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "GMT+8")
    private Date precautionDeadline;

    private String actionMakerName;

    @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "GMT+8")
    private Date actionMakeTime;

    private String actionIsOk;

    private String actionEval;

    private String actionEvalerName;

    @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "GMT+8")
    private Date actionEvalTime;

    private String correctiveActionProofUploaderName;

    @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "GMT+8")
    private Date correctiveActionProofUploadTime;

    private String correctiveActionProofEvalIsOk;

    private String correctiveActionProofEvalerName;

    @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "GMT+8")
    private Date correctiveActionProofEvalTime;

    private String precautionActionProofUploaderName;

    @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "GMT+8")
    private Date precautionActionProofUploadTime;

    private String precautionActionProofEvalIsOk;

    private String precautionActionProofEvalerName;

    @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "GMT+8")
    private Date precautionActionProofEvalTime;

    private String proofEvalIsOk;

    private String proofEvalerName;

    @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "GMT+8")
    private Date proofEvalTime;

    private String reformStatus;

    private String reformType;

    private Long relateId;

    private String relateCode;

    private String terminalType;

    private String isReport;

    private String isFile;

    private String requireDefineCauseRoot;

    private String requireDefineActionPre;

    private String isShareReport;

    private Long inspectionCheckId;

    private Boolean deleted;

    private Long creatorId;

    @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "GMT+8")
    private Date createTime;

    private String basis;

    private String rectificationResult;

}